/**
 *  This script demonstrates one use case for the pb_EditorUtility.onMeshCompiled delegate.
 *
 *  Whenever ProBuilder compiles a mesh it removes the colors, tangents, and uv attributes.
 */

// Uncomment this line to enable this script.
// #define PROBUILDER_API_EXAMPLE

#if PROBUILDER_API_EXAMPLE

using UnityEngine;
using UnityEditor;
using System.Collections;
using ProBuilder2.Common;
using ProBuilder2.EditorCommon;

[InitializeOnLoad]
public class ClearUnusedAttributes : Editor
{
    /**
     *  Static constructor is called and subscribes to the OnMeshCompiled delegate.
     */
    static ClearUnusedAttributes()
    {
        pb_EditorUtility.AddOnMeshCompiledListener(OnMeshCompiled);
    }

    ~ClearUnusedAttributes()
    {
        pb_EditorUtility.RemoveOnMeshCompiledListener(OnMeshCompiled);
    }

    /**
     *  When a ProBuilder object is compiled to UnityEngine.Mesh this is called.
     */
    static void OnMeshCompiled(pb_Object pb, Mesh mesh)
    {
        mesh.uv = null;
        mesh.colors32 = null;
        mesh.tangents = null;

        // Print out the mesh attributes in a neatly formatted string.
        // Debug.Log( pb_MeshUtility.Print(mesh) );
    }
}

#endif
